Users of computers, such as desktop PCs, set-top boxes, personal digital assistants (PDAs), and so on, have access to an ever increasing amount of media from an ever increasing variety of sources. For example, a user may interact with a desktop PC that executes a plurality of applications to provide media for output, such as home videos, songs, slideshow presentations, and so on. The user may also utilize a set-top box to receive traditional television programming that is broadcast to the set-top box over a broadcast network. Additionally, the set-top box may be configured as a digital video recorder (DVR) such that the user may store the broadcast content in memory on the set-top box for later playback. Further, the user may interact with a wireless phone that executes a plurality of applications such that the user may read and send email, play video games, view spreadsheets, and so forth.
Because of the wide variety of media sources and the wide variety of computers that may be utilized to provide and interact with media, traditional applications and computers were often configured to specifically address each particular type of media. For example, applications that were executed on a video-game console to output video-games were typically configured to provide an output of the applications to a television, and were not configured to provide the output that could be utilized by other computers and other devices. Therefore, presentation of media that was provided by the different media sources, such as computers and/or applications, may involve multiple devices and/or applications which may be both time and device intensive. Additionally, multiple applications that were executed on the same computer may be configured specifically to address the particular type of media provided by each respective application. For instance, a first audio playback application may be configured to output media configured as songs. A second audio playback application, however, may be configured for recording and playback in an audio format that is not compatible with the first audio playback application, such as an audio-dictation format.
A timeline provides a way for a user to define a presentation of media. For example, a media player can play songs chronologically organized into a timeline, which is commonly referred to as a “playlist”. Traditional timelines, however, were limited by the types of media sources and computer configurations that were used to provide and interact with media. When desiring the output of media from different applications, for instance, each type of media would require a different timeline which involved the use of different applications. This use of different applications often resulted in an inefficient use of both hardware and software resources of the computer. Additionally, the different timelines made it difficult to coordinate the outputs from the respective timelines, such as where media was being output from the respective timelines concurrently.
Further, the execution of large timelines may result in the inefficient use of software and/or hardware resources of the computer. When loading a large playlist of songs, for instance, each song in the playlist was loaded. Therefore, the initial loading of the playlist may consume a significant amount of hardware and/or software resources, thereby resulting in a delay in the loading and playing of songs in the playlist.
Accordingly, there is a continuing need to provide improved rendering of timelines.